package leetcode.sort;

/**
 * @author oyz
 * @version 1.1.0
 * @description: 冒泡排序,空间复杂度为O(1),是一个原地排序算法
 * @date 2022-9-29 17:16
 */
public class BubbleSort {

    public static void main(String[] args) {
        int []arr = {1,3,5,4,8};
        int[] sort = new BubbleSort().sort(arr);
        for (int i : sort) {
            System.out.println(i);
        }
    }

    public int[] sort(int[] arr){
        int size = arr.length;
        if(size<=1) return arr;
        for (int i = 0; i < size; i++) {
            boolean flag = false;
            // 这里减去i表示之前拍完序的不需要再次排序了
            for (int j=0;j< size-1-i;j++){
                if (arr[j]<arr[j+1]) {
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                    flag = true;
                }
            }
            if(!flag) break;
        }
        return arr;
    }


}
